Matthias Clasen [Fri, 3 Apr 2020 00:51:31 +0000 (20:51 -0400)]
widget: Make the :has-focus property readonly
The only place where this should be set is when making
a widget the focus-widget of a window. We still keep
the property around in readonly form, since there are
a few places where we rely on property notification
for it.
Matthias Clasen [Fri, 3 Apr 2020 00:50:35 +0000 (20:50 -0400)]
testsuite: Stop setting :has-focus
This is not necessary, whenever we want to set the initial
focus in a ui file, we can set GtkWindow:focus-widget.
Matthias Clasen [Fri, 3 Apr 2020 00:30:17 +0000 (20:30 -0400)]
widget: Drop the :is-focus property
This property doesn't carry any new information compared
to GtkWindow:focus-widget. We still keep the gtk_widget_is_focus
getter, as a convenient shortcut.
Matthias Clasen [Mon, 30 Mar 2020 02:11:38 +0000 (22:11 -0400)]
reftests: Stop using can-focus
Matthias Clasen [Mon, 30 Mar 2020 01:50:31 +0000 (21:50 -0400)]
a11y tests: Stop using can-focus
Matthias Clasen [Mon, 30 Mar 2020 01:14:23 +0000 (21:14 -0400)]
testsuite: Stop using can-focus
Matthias Clasen [Mon, 30 Mar 2020 01:05:38 +0000 (21:05 -0400)]
inspector: Drop more uses of can-focus
Matthias Clasen [Mon, 30 Mar 2020 00:34:49 +0000 (20:34 -0400)]
inspector: Remove can-focus from ui files
Matthias Clasen [Mon, 30 Mar 2020 00:09:33 +0000 (20:09 -0400)]
Stop setting can-focus in ui files
None of these settings are necessary.
Matthias Clasen [Sun, 29 Mar 2020 19:26:56 +0000 (15:26 -0400)]
window: Make set_focus equal to grab_focus
Make gtk_window_set_focus call gtk_widget_grab_focus internally.
This means that set_focus can now end up putting the focus on
a child of the passed-in widget, and makes the focus-widget
property work for setting initial focus to (the child of) an
entry in a ui file.
Matthias Clasen [Sun, 29 Mar 2020 19:19:23 +0000 (15:19 -0400)]
root: Reorganize focus handling
Make :focus-widget a GtkWindow property and add vfuncs
to the GtkRoot interface instead of the property.
Matthias Clasen [Sat, 4 Apr 2020 05:25:31 +0000 (01:25 -0400)]
Add more focus chain tests
Test page 2 and 3 of widget-factory as well, and try other directions.
Matthias Clasen [Wed, 8 Apr 2020 21:32:48 +0000 (17:32 -0400)]
Fix running focus-chain tests in ci
The widget-factory ui files require geettings
(for the color chooser), so set GSETTINGS_SCHEMA_DIR.
Matthias Clasen [Wed, 8 Apr 2020 11:48:35 +0000 (07:48 -0400)]
notbook: Fix a bug in focus handling
After the header widget was introduced, focus would get
stuck in a loop between actions and tabs.
This could be seen in the notebook on page 3 of
widget-factory.
Matthias Clasen [Thu, 9 Apr 2020 18:11:18 +0000 (14:11 -0400)]
coloreditor: Draw a focus around the color plane
Not doing it was just an oversight.
Matthias Clasen [Thu, 9 Apr 2020 18:10:23 +0000 (14:10 -0400)]
colorplane: Set a css name
Every widget should have one.
Matthias Clasen [Wed, 8 Apr 2020 23:59:02 +0000 (23:59 +0000)]
Merge branch 'wip/xdg-popup-move' into 'master'
Wayland popup moving
See merge request GNOME/gtk!1017
Jonas Ådahl [Tue, 17 Mar 2020 14:30:25 +0000 (15:30 +0100)]
wayland: Move transient-for field to GdkWaylandToplevel
A toplevel will only ever be transient-for to another toplevel, and only
a toplevel will ever be transient-for, so move the field into the
GdkWaylandToplevel, and make it a pointer to another GdkWaylandToplevel.
Jonas Ådahl [Tue, 17 Mar 2020 14:28:14 +0000 (15:28 +0100)]
wayland: Add surface to toplevel list only if toplevel
It was using another check (has parent) to do this, but now we have a
much more obvious way of creating surfaces, so we can use the type
directly.
Jonas Ådahl [Tue, 17 Mar 2020 14:26:58 +0000 (15:26 +0100)]
wayland: Remove own pointer to the popup parent
It's there already as the GdkSurface::parent, no need to duplicate.
Jonas Ådahl [Tue, 17 Mar 2020 14:23:57 +0000 (15:23 +0100)]
wayland: Move toplevel/popup/drag surface definitions higher up
We them up there, so that code higher up compared to where they are
defined now can make use of them. Also add a few macros for type
checking and casting.
Jonas Ådahl [Sun, 16 Feb 2020 19:09:42 +0000 (20:09 +0100)]
wayland: Move popups with xdg_popup.reposition
The third version of xdg-shell introduces support for explicit popup
repositioning. If available, make use of this to implement popup
repositioning.
Note that this does *NOT* include atomic parent-child state
synchronization. For that,
https://gitlab.freedesktop.org/wayland/wayland-protocols/issues/13 will
be needed.
This currently uses my own fork of wayland-protocols which adds meson
support, so that we can use it as a subproject. Eventually when
wayland-protocols' meson support lands upstream, we should change it to
point there.
Silence some meson warnings while at it to make CI happy.
This also bumps the glib requirement, since g_warning_once() is used.
Jonas Ådahl [Wed, 8 Apr 2020 20:43:29 +0000 (22:43 +0200)]
build: Change wrap revisions to use master instead of origin/master
Using origin/master crashes meson.
Jakub Steiner [Wed, 8 Apr 2020 21:12:57 +0000 (21:12 +0000)]
Merge branch 'Gtk4_blue_focus_rings' into 'master'
Blue outlines / focus rings
See merge request GNOME/gtk!1629
Frederik F [Wed, 8 Apr 2020 21:12:57 +0000 (21:12 +0000)]
Blue outlines / focus rings
- introduce two new colors: $focus_border_color for focused / outlined elements and $_coloured_focus_border_color for focused / outlined elements with a colored background color, like suggested/destructive buttons or selected elements
- set outline / focus color, offset and style accordingly for all widgets
- adapt entry focus color
Matthias Clasen [Wed, 8 Apr 2020 20:55:14 +0000 (20:55 +0000)]
Merge branch 'render-node-types' into 'master'
Turn GskRenderNode into a fundamental type
See merge request GNOME/gtk!1649
Emmanuele Bassi [Wed, 8 Apr 2020 15:17:08 +0000 (16:17 +0100)]
Properly annotate the render node constructors
Now that the GskRenderNode subclasses are recognised as proper
sub-types, we can annotate the constructors with their type. The C API
remains the same.
Emmanuele Bassi [Wed, 8 Apr 2020 14:34:11 +0000 (15:34 +0100)]
Add get_type() functions for GskRenderNode subclasses
The introspection scanner tries to match a type name with a get_type()
function, in order to correctly identify a type as a class.
If the function is not available, we have two choices:
- add some special case inside the introspection scanner, similar to
how GParamSpec subclasses are handled in GObject
- add a simple get_type() function
The latter is the simplest approach, and we don't need to change that
much, since we still register all render nodes at once.
Emmanuele Bassi [Wed, 8 Apr 2020 14:30:46 +0000 (15:30 +0100)]
Do not install GSK headers for missing backends
Broadway and Vulkan renderers are optional; if GTK hasn't been built
with their GSK renderers, we should not install their headers.
Emmanuele Bassi [Wed, 8 Apr 2020 14:26:14 +0000 (15:26 +0100)]
Improve the gtktypefuncs.inc generator
Remove the plug/socket exception, and add exceptions for non-X11
windowing systems.
Additionally, speed up the file generation by avoiding string
concatenation in Python.
Emmanuele Bassi [Tue, 7 Apr 2020 23:00:26 +0000 (00:00 +0100)]
Add missing transfer annotation
Emmanuele Bassi [Tue, 7 Apr 2020 22:33:54 +0000 (23:33 +0100)]
Turn GskRenderNode into a derivable type
Language bindings—especially ones based on introspection—cannot deal
with custom type hiearchies. Luckily for us, GType has a derivable type
with low overhead: GTypeInstance.
By turning GskRenderNode into a GTypeInstance, and creating derived
types for each class of node, we can provide an introspectable API to
our non-C API consumers, with no functional change to the C API itself.
Emmanuele Bassi [Tue, 7 Apr 2020 22:32:22 +0000 (23:32 +0100)]
Add macro for exported variables
The logic is based on the similar macro in GLib, but with the
appropriate GDK symbols.
Emmanuele Bassi [Wed, 8 Apr 2020 12:17:50 +0000 (12:17 +0000)]
Merge branch 'ci-meson-bump' into 'master'
ci: Update the version of Meson in our Docker image
See merge request GNOME/gtk!1651
Emmanuele Bassi [Wed, 8 Apr 2020 11:26:58 +0000 (12:26 +0100)]
ci: Update the version of Meson in our Docker image
Needed for !1017.
Matthias Clasen [Tue, 7 Apr 2020 20:30:43 +0000 (20:30 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Remove an unused backend includes
See merge request GNOME/gtk!1648
Matthias Clasen [Tue, 7 Apr 2020 19:27:51 +0000 (19:27 +0000)]
Merge branch 'imcontextsimple-drop-ifdefs' into 'master'
impcontextsimple: Drop ifdef'ed platform dependencies
See merge request GNOME/gtk!1647
Matthias Clasen [Tue, 7 Apr 2020 19:01:33 +0000 (15:01 -0400)]
Remove an unused backend includes
These includes are just leftovers.
Every time where we do an #ifdef GDK_WINDOWING... in gtk/,
something went wrong. Don't do it needlessly.
Matthias Clasen [Tue, 7 Apr 2020 18:54:04 +0000 (14:54 -0400)]
impcontextsimple: Drop ifdef'ed platform dependencies
The proper way to do this would be to adapt the tables
to have the right data for the platform. Since 4.0 is
a new start in many ways, lets clean this up.
Matthias Clasen [Tue, 7 Apr 2020 18:18:55 +0000 (18:18 +0000)]
Merge branch 'private-x11-types' into 'master'
Do not parse all GDK-X11 source files
See merge request GNOME/gtk!1646
Emmanuele Bassi [Tue, 7 Apr 2020 17:12:58 +0000 (18:12 +0100)]
Rename gdkx11keys.h
The header is now private, so it should follow the same naming scheme
for private GDK-X11 headers.
Emmanuele Bassi [Tue, 7 Apr 2020 17:10:01 +0000 (18:10 +0100)]
Hide GdkX11Keymap's GType function
It's not a public object.
Emmanuele Bassi [Tue, 7 Apr 2020 15:46:12 +0000 (16:46 +0100)]
Do not parse all GDK-X11 source files
We don't need all of them, only the ones that contain public API. This
allows us to reduce the chance of a stray symbol getting incorrectly
added to the introspection data.
Matthias Clasen [Tue, 7 Apr 2020 04:15:33 +0000 (04:15 +0000)]
Merge branch 'attribute-docs' into 'master'
entry: Document buildable support
See merge request GNOME/gtk!1643
Matthias Clasen [Tue, 7 Apr 2020 03:29:47 +0000 (23:29 -0400)]
entry: Document buildable support
Matthias Clasen [Tue, 7 Apr 2020 02:13:10 +0000 (22:13 -0400)]
entry: Add <attributes> support
Make entries support the same <attributes> syntax
as labels.
Closes: #1335
Matthias Clasen [Tue, 7 Apr 2020 01:46:12 +0000 (21:46 -0400)]
Move label attribute parser code
We want to reuse the parser for <attributes> in several
widgets, so move it to a shared place.
Matthias Clasen [Mon, 6 Apr 2020 23:59:33 +0000 (23:59 +0000)]
Merge branch 'cross-postinstall' into 'master'
meson: Don't execute post-install.py if cross compiling
See merge request GNOME/gtk!1636
Matthias Clasen [Mon, 6 Apr 2020 23:44:32 +0000 (23:44 +0000)]
Merge branch 'fix-event-match' into 'master'
shortcuttrigger: Don't trigger on key releases
See merge request GNOME/gtk!1642
Matthias Clasen [Mon, 6 Apr 2020 23:30:26 +0000 (23:30 +0000)]
Merge branch 'wip/chergert/fix-shortcut-param-order' into 'master'
widget: fix parameter ordering to match implementation
Closes #2586
See merge request GNOME/gtk!1641
Matthias Clasen [Mon, 6 Apr 2020 23:16:41 +0000 (19:16 -0400)]
shortcuttrigger: Don't trigger on key releases
This broke when the event type check in gdk_key_event_matches
was removed and replaced by a precondition that accepts both
key press and release events.
Add the check in gtk_keyval_trigger_trigger instead.
Christian Hergert [Mon, 6 Apr 2020 22:39:44 +0000 (15:39 -0700)]
widget: fix parameter ordering to match implementation
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/2586
Matthias Clasen [Mon, 6 Apr 2020 21:05:52 +0000 (17:05 -0400)]
Replace most uses of <Primary> with <Control>
The only place where we are still using <Primary> is
in tests, to ensure we keep parsing it. Otherwise,
<Control> is now the preferred syntax.
Matthias Clasen [Mon, 6 Apr 2020 20:56:06 +0000 (20:56 +0000)]
Merge branch 'keymap-rework-2' into 'master'
Keymap rework 2
See merge request GNOME/gtk!1635
Matthias Clasen [Mon, 6 Apr 2020 19:15:21 +0000 (15:15 -0400)]
reftests: Comment out a test that fails only in ci
Fixing such only-in-ci failures is just too hard,
unfortunately.
Matthias Clasen [Mon, 6 Apr 2020 17:48:57 +0000 (13:48 -0400)]
Update migration guide
Rewrite the sections about keymaps and menus, and add
hints about modifiers.
Matthias Clasen [Mon, 6 Apr 2020 05:48:37 +0000 (01:48 -0400)]
accelgroup: Small documentation updates
Mention GtkShortcutTrigger, and remove references
to <Release>.
Matthias Clasen [Mon, 6 Apr 2020 05:39:17 +0000 (01:39 -0400)]
Reshuffle keymap docs
Since GdkKeymap api is on longer public, move relevant
documentation to the long description.
Matthias Clasen [Mon, 6 Apr 2020 01:43:57 +0000 (21:43 -0400)]
Drop gtk_accelerator_set_default_mod_mask
Our new approach to modifiers works with a fixed set,
there is really no need to customize the modifier
masks if the backends are all supposed to deliver
the same modifiers.
Matthias Clasen [Mon, 6 Apr 2020 00:41:26 +0000 (20:41 -0400)]
gdk: Remove gdk_keymap_get_modifier_mask
This function is no longer public and no longer used.
Matthias Clasen [Mon, 6 Apr 2020 00:39:04 +0000 (20:39 -0400)]
Remove uses of modifier intents in gdkevents.c
This removes the use of the context menu and shift group
intents in gdkevents.c. If it turns out to be important,
we need to introduce vfuncs for gdk_event_triggers_context_menu
and gdk_event_matches.
Matthias Clasen [Mon, 6 Apr 2020 00:37:32 +0000 (20:37 -0400)]
display: Remove gdk_display_get_modifier_mask
This is not used anymore.
Matthias Clasen [Mon, 6 Apr 2020 00:35:41 +0000 (20:35 -0400)]
gtk: Drop gtk_widget_get_modifier_mask
This is not used anymore.
Matthias Clasen [Sun, 5 Apr 2020 23:52:25 +0000 (19:52 -0400)]
gtk: Stop using modifier intents
Reviewing the existing settings, the only backend with
some differences in the modifier intent settings is OS X,
and we would rather have that implemented by interpreting
the existing modifiers in the appropriate way.
X11 Wayland Win32 OS X
primary ctrl ctrl ctrl mod2
mnemonic alt alt alt alt
context menu - - - ctrl
extend sel shift shift shift shift
modify sel ctrl ctrl ctrl mod2
no text alt|ctrl alt|ctrl alt|ctrl mod2|ctrl
shift group varies - - alt
GTK now uses the following modifiers:
primary ctrl
mnemonic alt
extend sel shift
modify sel ctrl
no text alt|ctrl
The context menu and shift group intents were not used
in GTK at all.
Update tests to no longer expect <Primary> to roundtrip
through the accelerator parsing and formatting code.
Matthias Clasen [Sun, 5 Apr 2020 23:33:02 +0000 (19:33 -0400)]
keymap: Remove virtual modifier mapping functions
These are not used anymore.
Drop the vfuncs and their implementations in the
broadway, x11, wayland and win32 backends as well.
Matthias Clasen [Sun, 5 Apr 2020 15:29:12 +0000 (11:29 -0400)]
gdk: Make GdkKeymap a private api
We have replacement apis in GdkDevice and GdkDisplay.
Matthias Clasen [Mon, 6 Apr 2020 20:22:01 +0000 (20:22 +0000)]
Merge branch 'misc-meson-fixes' into 'master'
Reduce useless relinking on configure and fix check for buildtype arguments
See merge request GNOME/gtk!1614
Justin van Steijn [Mon, 6 Apr 2020 19:40:22 +0000 (19:40 +0000)]
Update Dutch translation
Matthias Clasen [Mon, 6 Apr 2020 19:32:27 +0000 (15:32 -0400)]
imcontextsimple: Disable some win32-only code
This code needs to be redone differently, since keymaps are no
longer going to be exposed. There should really not be this much
ifdef-ed backend-specific code here anyway. Or any, really.
Matthias Clasen [Sun, 5 Apr 2020 14:24:07 +0000 (10:24 -0400)]
gdk: Clean up GdkModifierType
Remove MOD2..MOD5. Backends are expected to just set
the named modifiers.
Matthias Clasen [Sun, 5 Apr 2020 18:40:55 +0000 (14:40 -0400)]
gdk: Redo key events
Add all of the keyboard translation results in the key event,
so we can translate the keyboard state at the time the event
is created, and avoid doing state translation at match time.
We actually need to carry two sets of translation results,
since we ignore CapsLock when matching accelerators, in
gdk_event_matches().
At the same time, drop the scancode field - it is only ever
set on win32, and is basically unused in GTK.
Update all callers.
Matthias Clasen [Sun, 5 Apr 2020 14:25:33 +0000 (10:25 -0400)]
gtk: Remove handling of virtual modifiers
These are going away. We expect to just have
named modifiers in modifier masks now, so we
longer juggle 'real' and 'virtual' modifiers.
Matthias Clasen [Sun, 5 Apr 2020 14:23:18 +0000 (10:23 -0400)]
events: Stop doing elaborate virtual modifier handling
These are going away in the GdkModifierType cleanup.
Just compare the modifiers we got.
Matthias Clasen [Sun, 5 Apr 2020 14:08:01 +0000 (10:08 -0400)]
broadway: Stop using MOD2..MOD5
These are going away in the GdkModifierType cleanup.
Matthias Clasen [Mon, 6 Apr 2020 19:13:00 +0000 (15:13 -0400)]
win32: Stop using MODx modifiers
The win32 backend is using GDK_MOD2_MASK for AltGr,
so define GDK_MOD2_MASK locally to keep this working,
but remove any mention of GDK_MOD3_MASK,...,GDK_MOD5_MASK.
Yuri Chornoivan [Mon, 6 Apr 2020 15:46:52 +0000 (15:46 +0000)]
Update Ukrainian translation
Yuri Chornoivan [Mon, 6 Apr 2020 14:06:17 +0000 (14:06 +0000)]
Update Ukrainian translation
Matthias Clasen [Mon, 6 Apr 2020 12:47:55 +0000 (12:47 +0000)]
Merge branch 'fno-common' into 'master'
Add a missing extern, to fix building with -fno-common
See merge request GNOME/gtk!1631
Matthias Clasen [Sun, 5 Apr 2020 14:06:51 +0000 (10:06 -0400)]
wayland: Stop setting MOD2..MOD5
These are going away in the GdkModifierType cleanup.
Matthias Clasen [Sun, 5 Apr 2020 14:04:47 +0000 (10:04 -0400)]
gdk: Remove reserved bit from GdkModifierType
This really has no purpose and obscures the header.
Matthias Clasen [Sun, 5 Apr 2020 13:53:02 +0000 (09:53 -0400)]
gtk: Stop using GDK_MODx_MASK
These are never used in practice, and we never want to
see them in the UI, so stop supporting them. This is
in preparation for cleaning up GdkModifierType.
Matthias Clasen [Sun, 5 Apr 2020 13:39:03 +0000 (09:39 -0400)]
Rename GDK_MOD1_MASK to GDK_ALT_MASK
We've hardcoded Mod1 = Alt for a long time, there is
no need to keep the confusing naming around anymore.
Matthias Clasen [Mon, 6 Apr 2020 01:41:10 +0000 (21:41 -0400)]
tests: Stop using gtk_accelerator_set_default_mod_mask
This is not doing anything useful here.
Matthias Clasen [Sun, 5 Apr 2020 15:28:52 +0000 (11:28 -0400)]
testsuite: Stop using keymap apis
Matthias Clasen [Sun, 5 Apr 2020 15:03:28 +0000 (11:03 -0400)]
gtk: Use display apis for keymap mapping
This removes the last uses of GdkKeymap from GTK.
Matthias Clasen [Sun, 5 Apr 2020 05:04:20 +0000 (01:04 -0400)]
gtk: Stop using keymap apis
Stop using most keymap apis in GTK. Only a few calls
related to virtual modifiers are left.
Matthias Clasen [Sun, 5 Apr 2020 04:48:02 +0000 (00:48 -0400)]
x11: Notify new device properties
Matthias Clasen [Sun, 5 Apr 2020 04:37:51 +0000 (00:37 -0400)]
wayland: Notify new device properties
Matthias Clasen [Sun, 5 Apr 2020 15:02:50 +0000 (11:02 -0400)]
Move keymap mapping functions to GdkDisplay
We want to stop exposing GdkKeymap, so this
functionality needs a new home.
Matthias Clasen [Sun, 5 Apr 2020 15:02:21 +0000 (11:02 -0400)]
Move GdkKeymapKey to gdktypes.h
We are going to use this type in a different header.
Matthias Clasen [Sun, 5 Apr 2020 04:37:23 +0000 (00:37 -0400)]
gdk: Move modifier mask api to GdkDisplay
GdkKeymap is on the way out.
Matthias Clasen [Sun, 5 Apr 2020 04:36:42 +0000 (00:36 -0400)]
gdk: Add keymap properties to GdkDevice
GdkKeymap is on the way out.
Matthias Clasen [Sun, 5 Apr 2020 04:30:23 +0000 (00:30 -0400)]
passwordentry: Show caps lock warning more
Show the caps lock warning regardless of whether we
have the peek icon or not.
Matthias Clasen [Sun, 5 Apr 2020 00:04:42 +0000 (20:04 -0400)]
Drop some no longer used code
Matthias Clasen [Sun, 5 Apr 2020 00:03:44 +0000 (20:03 -0400)]
cell renderer accel: Use gdk_event_get_match
Matthias Clasen [Sun, 5 Apr 2020 00:02:20 +0000 (20:02 -0400)]
Add gdk_event_get_match
This is a counterpart to gdk_event_matches() that can
be used to obtain a shortcut matching an event.
Matthias Clasen [Sat, 4 Apr 2020 21:51:32 +0000 (17:51 -0400)]
Add gdk_event_matches
Move the elaborate key event matching code from
GtkShortcutTrigger to GdkEvent, which greatly reduces
the amount of keymap api use outside of GDK.
Martin Storsjö [Sun, 5 Apr 2020 19:57:22 +0000 (22:57 +0300)]
meson: Don't execute post-install.py if cross compiling
Martin Storsjö [Sat, 4 Apr 2020 21:43:16 +0000 (00:43 +0300)]
Add a missing extern, to fix building with -fno-common
With C compilers defaulting to -fcommon, this isn't an issue, but
upcoming compilers (GCC 10 and Clang 11) will default to -fno-common,
ending up with duplicate definitions of these variables.
Matthias Clasen [Sat, 4 Apr 2020 21:09:12 +0000 (21:09 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!1630